package com.tedu.day02.test;

/**
 *    普通类    抽象类     接口类
 *                       【关系】      【特点】
 *        类与类            继承         只能单继承，可多层继承
 *        类与抽象类        继承          可以单继承，不可以多继承
 *        抽象类与抽象类     继承         只能单继承，可多层继承
 *        类与接口          实现         可以单继承，也可以多实现
 *                                      并且继承同时实现多个接口
 *        接口与接口        继承           可以单继承，可以多继承
 */
/*作业1:抽象类与接口区别和关系？ 简答*/
//抽象类：抽象类是一种特殊的类，它不能被实例化，主要用来为子类提供一个基本的实现框架。它可以包含抽象方法（没有实现的方法）、具体方法、构造方法、成员变量等
//接口：接口是一组方法签名的集合，它定义了行为的标准，但不提供实现。接口可以有默认方法（从Java 8开始）和静态方法，但不能有构造方法。接口中的成员变量默认为public static final
//抽象类：一个类只能继承一个抽象类。如果一个类继承了抽象类，它必须实现抽象类中的所有抽象方法，除非它本身也声明为抽象类
//接口：一个类可以实现多个接口。如果一个类实现了接口，它必须实现接口中的所有方法，除非它声明为抽象类
//抽象类：可以有成员变量和非抽象方法
//接口：只能有公共的静态的常量和抽象方法；从Java 8开始，接口可以有默认方法和静态方法
//抽象类：抽象方法可以在子类中实现
//接口：抽象方法必须在实现接口的类中实现

//5.接口与接口  继承  可以单继承 可以多继承
    interface Loo{}  interface Foo{}
interface Voo extends Loo,Foo{}

//4.类与接口：实现 ---可以单继承，也可以多实现
//interface Loo{}   interface Foo{}
//class Joo{}
//class Voo extends Joo implements Loo,Foo{}

//3.抽象类与抽象类：继承-只能单继承，可多层继承
//abstract class loo{}
//abstract class Voo extends Loo{}
//abstract class Uoo extends Voo{}

//2.类与抽象类：继承---可以单继承，不可以多继承
   // abstract class Uoo{}    abstract class Voo{}
//class Loo extends Uoo,Voo{}

//1.类与类：继承---单继承，可以多层继承
   /* class Uoo{}
    class Loo extends Uoo{}
    class Voo extends Loo{}*/
public class 关系 {
}
